20. Solutions: Last Check
Solutions
-
Provide a table that provides the
region
for each
sales_rep
along with their associated
accounts
. This time only for the
Midwest
region. Your final table should include three columns: the region name , the sales rep name , and the account name . Sort the accounts alphabetically (A-Z) according to account name.
SELECT r.name region, s.name rep, a.name account
FROM sales_reps s
JOIN region r
ON s.region_id = r.id
JOIN accounts a
ON a.sales_rep_id = s.id
WHERE r.name = 'Midwest'
ORDER BY a.name;
-
Provide a table that provides the
region
for each
sales_rep
along with their associated
accounts
. This time only for accounts where the sales rep has a first name starting with
S
and in theMidwest
region. Your final table should include three columns: the region name , the sales rep name , and the account name . Sort the accounts alphabetically (A-Z) according to account name.
SELECT r.name region, s.name rep, a.name account
FROM sales_reps s
JOIN region r
ON s.region_id = r.id
JOIN accounts a
ON a.sales_rep_id = s.id
WHERE r.name = 'Midwest' AND s.name LIKE 'S%'
ORDER BY a.name;
-
Provide a table that provides the
region
for each
sales_rep
along with their associated
accounts
. This time only for accounts where the sales rep has a
last
name starting with
K
and in theMidwest
region. Your final table should include three columns: the region name , the sales rep name , and the account name . Sort the accounts alphabetically (A-Z) according to account name.
SELECT r.name region, s.name rep, a.name account
FROM sales_reps s
JOIN region r
ON s.region_id = r.id
JOIN accounts a
ON a.sales_rep_id = s.id
WHERE r.name = 'Midwest' AND s.name LIKE '% K%'
ORDER BY a.name;
-
Provide the
name
for each region for every
order
, as well as the account
name
and the
unit price
they paid (total_amt_usd/total) for the order. However, you should only provide the results if the
standard order quantity
exceeds
100
. Your final table should have 3 columns: region name , account name , and unit price .
SELECT r.name region, a.name account, o.total_amt_usd/(o.total + 0.01) unit_price
FROM region r
JOIN sales_reps s
ON s.region_id = r.id
JOIN accounts a
ON a.sales_rep_id = s.id
JOIN orders o
ON o.account_id = a.id
WHERE o.standard_qty > 100;
-
Provide the
name
for each region for every
order
, as well as the account
name
and the
unit price
they paid (total_amt_usd/total) for the order. However, you should only provide the results if the
standard order quantity
exceeds
100
and the poster order quantity exceeds50
. Your final table should have 3 columns: region name , account name , and unit price . Sort for the smallest unit price first.
SELECT r.name region, a.name account, o.total_amt_usd/(o.total + 0.01) unit_price
FROM region r
JOIN sales_reps s
ON s.region_id = r.id
JOIN accounts a
ON a.sales_rep_id = s.id
JOIN orders o
ON o.account_id = a.id
WHERE o.standard_qty > 100 AND o.poster_qty > 50
ORDER BY unit_price;
-
Provide the
name
for each region for every
order
, as well as the account
name
and the
unit price
they paid (total_amt_usd/total) for the order. However, you should only provide the results if the
standard order quantity
exceeds
100
and the poster order quantity exceeds50
. Your final table should have 3 columns: region name , account name , and unit price . Sort for the largest unit price first.
SELECT r.name region, a.name account, o.total_amt_usd/(o.total + 0.01) unit_price
FROM region r
JOIN sales_reps s
ON s.region_id = r.id
JOIN accounts a
ON a.sales_rep_id = s.id
JOIN orders o
ON o.account_id = a.id
WHERE o.standard_qty > 100 AND o.poster_qty > 50
ORDER BY unit_price DESC;
-
What are the different
channel
s used by
account id
1001
? Your final table should have only 2 columns: account name and the different channel s. You can try SELECT DISTINCT to narrow down the results to only the unique values.
SELECT DISTINCT a.name, w.channel
FROM accounts a
JOIN web_events w
ON a.id = w.account_id
WHERE a.id = '1001';
-
Find all the orders that occurred in
2015
. Your final table should have 4 columns: occurred_at , account name , order total , and order total_amt_usd .
SELECT o.occurred_at, a.name, o.total, o.total_amt_usd
FROM accounts a
JOIN orders o
ON o.account_id = a.id
WHERE o.occurred_at BETWEEN '01-01-2015' AND '01-01-2016'
ORDER BY o.occurred_at DESC;
Workspace
This section contains either a workspace (it can be a Jupyter Notebook workspace or an online code editor work space, etc.) and it cannot be automatically downloaded to be generated here. Please access the classroom with your account and manually download the workspace to your local machine. Note that for some courses, Udacity upload the workspace files onto https://github.com/udacity , so you may be able to download them there.
Workspace Information:
- Default file path:
- Workspace type: sql-evaluator
- Opened files (when workspace is loaded): n/a